home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Bavarian
/
Bavarian #129 (19xx)(APS Electronic).zip
/
Bavarian #129 (19xx)(APS Electronic).adf
/
apaint.bas
< prev
next >
Wrap
BASIC Source File
|
1986-02-01
|
6KB
|
160 lines
100 ' ==== APAINT ====
110 '
120 ' Copyright 1985 Colin French
130 ' Last Revision: 24/02/86 CJF
140 '
150 ' Although this program is copyrighted,
160 ' please feel free to pass on copies to
170 ' friends and user groups, so long as
180 ' you don't do it for profit. All other
190 ' rights are reserved by the author.
200 '
210 ' This program will do the initialization
220 ' for APaint and then chain in the main
230 ' program. Please look under the 'Extras'
240 ' menu in APaint for information on making
250 ' copies. For more information on APaint,
260 ' and how to use the pictures you create
270 ' in your own programs, run APAINT.HINTS.
280 '
290 ' If you find any bugs, or make improvements
300 ' to APaint, I'd like to hear from you. Write:
310 '
320 ' Colin French
330 ' 2144 Iris Street
340 ' Ottawa, Ontario
350 ' K2C 1B3
360 '
370 ' Note: Please do not remove these comments.
380 ' It will not increase execution speed at all.
390 '
400 '
410 ' +----------------------+
420 ' | INITIALIZATION |
430 ' +----------------------+
440 '
450 SCREEN 0,5:FONT 1:GRAPHIC 1:DRAWMODE 0
460 DIM STDCLR%(31,2),ACLR%(31,2),TCLR%(31,2),CCLR%(95)
470 FOR N=0 TO 31 'save standard colors
480 ASK RGB N,STDCLR%(N,0),STDCLR%(N,1),STDCLR%(N,2)
490 FOR N2=0 TO 2:READ ACLR%(N,N2):TCLR%(N,N2)=ACLR%(N,N2):NEXT N2
500 RGB N,ACLR%(N,0),ACLR%(N,1),ACLR%(N,2):NEXT N
510 ' APAINT STARTING PALETTE
520 DATA 0,0,0,0,10,0,0,7,0,0,4,0
530 DATA 0,6,0,0,14,0,0,10,8,0,13,11
540 DATA 15,2,14,10,2,12,8,0,9,0,0,6
550 DATA 1,2,9,2,5,14,3,8,15,5,12,15
560 DATA 14,10,10,11,0,0,0,0,0,15,15,15
570 DATA 11,11,11,8,8,8,10,6,5,15,15,9
580 DATA 7,0,0,11,0,0,15,0,0,15,6,2
590 DATA 15,8,4,15,15,15,13,13,0,0,3,0
600 WINDOW #1,0,0,320,200,"Project Tools Color Extras Undo ":CMD #1
610 DIM PROJMENU%(352),TOOLMENU%(1289),CLR1MENU%(1010)
620 DIM CLR2MENU%(377),EXTRMENU%(106),UNDOMENU%(29)
630 DIM MTITLFT%(4),MTITRGT%(4),NUMITEM%(4)
640 DIM MENULFT%(4),MENURGT%(4),MENUBOT%(4)
650 DIM ITEMLFT%(4,15),ITEMRGT%(4,15)
660 DIM ITEMTOP%(4,15),ITEMBOT%(4,15),ITEMHIGH%(4,15)
670 DIM PAT0%(1),PAT1%(3),PAT2%(1),PAT3%(1),PAT4%(1),PAT5%(3)
680 DIM PAT6%(3),PAT7%(3),PAT8%(15),PAT9%(15),PAT10%(15),PAT11%(1)
690 DIM UNDOBUF%(8980),EDITBUF%(8980),TPIC%(9100)
700 DIM XOFF(35),YOFF(35),CIR%(71),PTS%(63),LINPAT%(1)
710 DIM SMLBUF%(117),T%(9)
720 ' TRY TO LOAD TITLE SCREEN
730 ON ERROR GOTO 760 'if trouble, skip
740 BLOAD "APAINT.TITLE.APIC",VARPTR(TPIC%(0))
750 GSHAPE(0,0),TPIC%():GOTO 780
760 PENA 30:PRINT AT(116,70);"APAINT"
770 RESUME 780
780 ON ERROR GOTO 0 'cancel error trap
790 ' GET MENU IMAGES FROM DISK
800 BLOAD "PROJMENU",VARPTR(PROJMENU%(0))
810 BLOAD "TOOLMENU",VARPTR(TOOLMENU%(0))
820 BLOAD "CLR1MENU",VARPTR(CLR1MENU%(0))
830 BLOAD "CLR2MENU",VARPTR(CLR2MENU%(0))
840 BLOAD "EXTRMENU",VARPTR(EXTRMENU%(0))
850 BLOAD "UNDOMENU",VARPTR(UNDOMENU%(0))
860 ' SET UP MENU DATA
870 NUMMENU=4:FOR N=0 TO NUMMENU
880 READ MTITLFT%(N),MTITRGT%(N),NUMITEM%(N)
890 READ MENULFT%(N),MENURGT%(N),MENUBOT%(N)
900 FOR N2=0 TO NUMITEM%(N)
910 READ ITEMLFT%(N,N2),ITEMRGT%(N,N2)
920 READ ITEMTOP%(N,N2),ITEMBOT%(N,N2),ITEMHIGH%(N,N2)
930 NEXT N2,N
940 ' Project menu data
950 DATA 0,55,5,0,79,69
960 DATA 3,76,3,12,1,3,76,12,21,1
970 DATA 3,76,21,30,1,3,76,30,39,1
980 DATA 3,76,39,48,1,3,76,56,65,1
990 ' Tools menu data
1000 DATA 72,111,2,8,296,142
1010 DATA 14,287,14,37,0,14,287,52,75,0
1020 DATA 14,287,91,135,0
1030 ' Color menu data
1040 DATA 128,167,14,8,296,111
1050 DATA 17,68,21,28,1,17,68,29,36,1
1060 DATA 17,68,37,44,1,17,68,45,52,1
1070 DATA 17,68,53,60,1,17,68,61,68,1
1080 DATA 81,152,14,45,0,209,290,14,45,0
1090 DATA 97,158,52,57,0,97,158,60,65,0
1100 DATA 97,158,68,73,0,225,286,52,57,0
1110 DATA 225,286,60,65,0,225,286,68,73,0
1120 DATA 92,289,86,106,0
1130 ' Extras menu data
1140 DATA 184,231,1,176,299,25
1150 DATA 179,295,3,12,1,179,295,12,21,1
1160 ' Undo menu data
1170 DATA 248,279,0,240,287,17
1180 DATA 246,281,3,14,1
1190 '
1200 ' SET UP LINE PATTERNS USED
1210 LINPAT%(0)=65535:LINPAT%(1)=61680
1220 '
1230 ' SET UP AREA FILL PATTERNS
1240 PAT0%(0)=65535:PAT0%(1)=65535
1250 FOR N=0 TO 3:READ PAT1%(N):NEXT
1260 DATA 48059,65535,61166,65535
1270 PAT2%(0)=48059:PAT2%(1)=61166
1280 PAT3%(0)=43690:PAT3%(1)=21845
1290 PAT4%(0)=17476:PAT4%(1)=4369
1300 FOR N=0 TO 3:READ PAT5%(N):NEXT
1310 DATA 17476,0,4369,0
1320 FOR N=0 TO 3:READ PAT6%(N):NEXT
1330 DATA 52428,39321,13107,26214
1340 FOR N=0 TO 3:READ PAT7%(N):NEXT
1350 DATA 8738,4369,34952,17476
1360 FOR N=0 TO 15:READ PAT8%(N):NEXT
1370 DATA 1285,2570,7453,15934,32639,15934,23644,10280
1380 DATA 20560,41120,53713,58339,63479,58339,50629,33410
1390 FOR N=0 TO 15:READ PAT9%(N):NEXT
1400 DATA 3036,5742,60471,59603,59859,60851,63075,15300
1410 DATA 56331,28182,14316,54248,54249,46061,25590,50235
1420 FOR N=0 TO 15:READ PAT10%(N):NEXT
1430 DATA 65503,65503,92,65503,65503,65503,23644,23644
1440 DATA 23644,57343,23552,57343,57343,57343,23644,23644
1450 PAT11%(0)=61166:PAT11%(1)=61166
1460 '
1470 ' CALCULATE CIRCLE OFFSETS
1480 FOR N=0 TO 35:N2=(N*10)/180*PI
1490 XOFF(N)=COS(N2):YOFF(N)=SIN(N2)
1500 NEXT
1510 '
1520 ' VARIOUS VARIABLES
1530 PROJNAME$=""
1540 TOOL=1:BRUSH=0:PAT=0
1550 FCLR=9:BCLR=(-1):DRWMD=0
1560 PENA FCLR:DRAWMODE DRWMD
1570 PENO 29:OUTLINE 0
1580 DRIVE$="DF0:"
1582 DIM NAME$(3,30),NUMNAME%(3),SUFF$(3),FILTYP$(3),DSKBLK%(9)
1584 FILTYP$(1)="Picture":SUFF$(1)=".APIC"
1586 FILTYP$(2)="Palette":SUFF$(2)=".APAL"
1588 FILTYP$(3)="Clipping":SUFF$(3)=".ACLP"
1590 '
1600 ' CHAIN TO MAIN PROGRAM
1610 '
1612 PENA 0:BOX(35,162;261,172),1
1620 PENA 1:PRINT AT(64,170);"Loading main program..."
1630 CHAIN "APAINT.MAIN",600,ALL